// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "State.generated.h"

enum class EInputSignal : uint8;
/**
 * 
 */
UCLASS(BlueprintType, EditInlineNew)
class PT001_API UState : public UObject
{
	GENERATED_BODY()

protected:
	UPROPERTY()
	class UStateMachine* StateMachine;

	UPROPERTY()
	class ACharacter2D* Character;

	UPROPERTY()
	APlayerController* PlayerController;

	// 进入状态后，持续时间
	float DurationTime;

public:

	virtual void Init(APlayerController* Controller, ACharacter2D* Player, UStateMachine* SM);
	
	virtual void Enter();
	virtual void Exit();
	virtual void Tick(float Delta);
	virtual void InputSignal(EInputSignal Signal,  const struct FInputActionValue& Value );
};
